home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / as02.arc / SUPEREN.ASM < prev    next >
Assembly Source File  |  1985-04-11  |  2KB  |  59 lines

  1.     page
  2.     page    72,120
  3. title    superen Change name of file,sub-dir or vol id.
  4. comment "       superen [d:]name1 name2
  5.     renames files or subdirectories from name1 to name2.
  6.     name1 & name2 may have extensions and wild characters.
  7.     action of the program is as described in the dos manual
  8.     for int 21, function 17.
  9. "
  10. com    segment
  11.     assume cs:com,ds:com,es:com,ss:com
  12.     org    5ch        ;fcb formed from name 1
  13. fcb1    label    byte
  14. drive1    db    ?
  15. name1    db    11 dup(?)
  16.     org    6ch        ;fcb formed from name 2
  17. fcb2    label    byte
  18. drive2    db    ?
  19. name2    db    11 dup(?)
  20.     org    100h
  21. superen proc
  22.     mov    dx,offset invdr$    ;point to error msg
  23.     test    al,al            ;test for valid drive1 id
  24.     jnz    error
  25.     mov    dx,offset invpar$    ;check if name1 is there
  26.     cmp    name1,' '
  27.     je    error
  28.     cmp    name2,' '               ;check for name2
  29.     je    error
  30.     mov    si,offset fcb1        ;point to name1 fcb
  31.     mov    di,offset oldn        ;point to old name field
  32.     mov    cx,12            ;move 12 bytes
  33.     rep    movsb            ;move name1 to extended fcb
  34.     mov    si,offset name2     ;point to name2 not drive
  35.     mov    di,offset oldn+11h    ;point to new name field
  36.     mov    cx,11            ;name ex drive = 11 bytes
  37.     rep    movsb            ;move name2 to extended fcb
  38.     mov    dx,offset xfcb        ;point dx to extended fcb
  39.     mov    ah,17h            ;funtion 17 = rename
  40.     int    21h
  41.     test    al,al            ;test for errors
  42.     jz    exit            ;no errors if al=0
  43.     mov    dx,offset invnam$    ;else point to error msg
  44. error:    mov    ah,9            ;display error message
  45.     int    21h
  46. exit:    int    20h            ;return to dos
  47. superen endp
  48. invdr$    db    0dh,0ah,'Invalid drive id$',0dh,0ah,'$'
  49. invpar$ db    0dh,0ah,'2 params needed:[d:]oldname, newname'
  50.     db    0dh,0ah,'$'
  51. invnam$ db    0dh,0ah,'Name not found or already exists'
  52.     db    0dh,0ah,'$'
  53. xfcb    db    0ffh            ;extended fcb id byte
  54.     db    5 dup(0)
  55. attr    db    18h            ;attr for sub-dirs & vol labels
  56. oldn    db    37 dup(0)        ;old & new names go here
  57. com    ends
  58.     end    superen
  59.